package day0113;

public class Test4 {
    //1.匿名内部类: 下边的代码是一个内部类(没有名字)
    //继承了BigHouse
    public static void main(String[] args) {
        //1.这个是一个内部类，没有名字，继承了外部类
        //2.定义类的同时还创建了匿名内部类的对象
        //用一个外部类(父类)的变量，指向了内部类的对象
        BigHouse bh=new BigHouse(){//类体  //一个子类代码很少，只能某个方法中使用1次
            int age=30;
            public void test(){
                System.out.println("子类");
            }
        };
        System.out.println(bh.age);
        //属性绑定到类型上： 用向上造型的对象，访问父子类都有的成员变量，使用的是父类的成员变量
        //因为这个对象的类型是父类型(所以使用的是父类的成员变量)
        //方法绑定到对象上： 用向上造型的对象，访问子类重写父类的方法，创建的哪个类的对象，就执行哪个类的方法
    }
}

class BigHouse{//外部类的类体
    int age=3;
    public void test(){
        System.out.println("父类");
    }
}





//2.定义内部类的同时，还创建了一个内部类的对象
    /*BigHouse bh=new BigHouse(){//类体
        int age=3;
        public void test(){}
    };*/

